#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <DMainWindow>
#include <DTabBar>
#include <DLineEdit>
#include <DPushButton>
#include <QWebEngineView>
#include <src/webwidget.h>
#include <DSearchEdit>
#include <DWaterProgress>
#include <src/addressedit.h>
#include <QMenu>
#include <DBlurEffectWidget>
#include <src/progressloader.h>
#include <src/settingdialog.h>
#include <QDir>
#include <QResizeEvent>
#include <QWebEngineProfile>
#include <QWebEngineProfile>
DWIDGET_USE_NAMESPACE
//const QString setting_path = QDir::homePath() + "/.config/dbrowser/";
class MainWindow : public DBlurEffectWidget
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    MainWindow(QUrl);
    ~MainWindow();
    void resizeEvent(QResizeEvent *event);
    void InitMainWindow();
private:
    QWidget* w;
    DTabBar* tabbar_main;
    DTitlebar* titlebar;
    QWidget* addressbar_main;//地址栏部分的大widget
    AddressEdit* addressedit_main;//地址栏部分的地址编辑器
    DSearchEdit* searchedit;//地址栏搜索部分
    //地址栏上的按钮
    DPushButton* btn_left;
    DPushButton* btn_right;
    DPushButton* btn_f5;
    DPushButton* btn_bookmark;
    WebWidget* webwidget;//Web部分的Widget
    int MainCode;
    DWaterProgress *loader;
    QMenu *mainMenu;
    QAction *addTab;
    QAction *effects;
    QAction *setting;
    QAction *addWindow;
    QMenu *bookmark;
    DBlurEffectWidget *bookmarkList;
    ProgressLoader *progressloader;
    SettingDialog *settingDialog;
    int tabWidth;
    QTimer *timer;//用于在关闭标签后定时重置尺寸

public:
    void updateTabWidth();
    void addPage(QUrl,int index=-1);//新建一个Page,index表示新建的位置，若为-1则为标签栏末尾
    void addPage(WebEngineView*,int index=-1);
    void addPage_conf(WebWidget::WebPage *,int);
    void delPage(int);
    void setPageIndex(int);
    bool isNowPage(int code);
    int newCode();
    int tabbarIndex(int code);
    void updateBookmark();
    void addBookmark(QString,QUrl);
    void loadBookmark();
    bool isStar(QUrl);
    void loadConfig();
    void timer_1000();


};

#endif // MAINWINDOW_H
